/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package questao06;

/**
 *
 * @author Bush
 */
public class Processando implements IEstado {

    private String msg;
    private Pedido pedido;

    public Processando(Pedido pedido) {
        this.pedido = pedido;
    }

    
    @Override
    public void enviar() {
        pedido.setStatus(Pedido.Status.ENVIADO);
    }

    @Override
    public void cancelar() {
        pedido.setStatus(Pedido.Status.CANCELADO);
    }

    @Override
    public void alterar() throws Exception {
        switch (pedido.getStatus()) {
            case PROCESSANDO:
                //código para alteração do pedido 
                break;
            case CANCELADO:
                msg = "Não é possível alterar um pedido cancelado";
                throw new IllegalStateException(msg);
            case ENVIADO:
                msg = "Não é possivel alterar um pedido enviado";
                throw new IllegalStateException(msg);
        }
    }

}
